A finite impulse response (FIR) filter is a type of electronic filter with a broad range of applications. FIR filters are widely used in both digital signal processing and digital video processing, and their construction is well known in the prior art.
One type of FIR filter is a transversal filter, or tapped delay line filter, as shown in FIG. 1. The output of such a filter is a weighted combination of voltages taken from uniformly spaced taps, and thus a weighted sum of the current input value and a finite number of previous values of the input. The output is proportional to the sum of the delayed voltages divided by the resistances connected to the respective voltages. The proportionality of the output is thus a constant, the constant being the parallel impedance of all the resistances.
The filter contains a plurality (here 7 are shown) of unit delay elements U1 to U7, each of which introduces a delay of time t. The filter is considered to be of the Mth order, where M−1 is the number of delay elements, so the filter of FIG. 1 is an 8th order filter. The output of each of the delay elements U1 to U7 is connected to an element having impedance, here shown as a resistor R1 to R7, typically through some buffering means, such as buffers Z1 to Z7. The resistors all share a common output point, (Other elements having impedance may be used rather than resistors, such as, for example, capacitors or inductors.)
As an input signal Sn progresses through the delay elements, its contribution to the output voltage varies in time; each resistor causes the signal on the respective delay element to which it is attached to contribute to the output signal in inverse proportion to the resistor value. Thus, if the resistor is small, the signal on the attached delay element will have a large contribution to the output voltage, while if the resistor is large the contribution to the output will be smaller.
It is well known that the mathematical basis of a FIR filter is the mathematics of Fourier transforms. By properly selecting the resistor values a set of resistors as the inverse of a set of Fourier coefficients that is calculated to provide a desired frequency response, a FIR filter is designed to provide an output with that response. The resistor values are typically calculated by a software program which takes the desired frequency response as an input.
One limitation of the circuit of FIG. 1 is that while the output is the weighted sum of the delayed signal, the weights all have to be positive numbers, as the circuit as shown does not have the ability to implement negative coefficients. This limits the use of the circuit of FIG. 1, since while most of the Fourier coefficients for a desired frequency response will be positive numbers, even for an output considered positive some coefficients may be negative, requiring a negative resistance value which cannot be constructed directly.
It is also well known how to construct a differential version of the circuit of FIG. 1. FIG. 2 shows another FIR filter with a set of delay elements U1 to U6, buffers Z1 to Z6, a first set of resistors R1 to R6, and a second set of resistors R7 to R12. Unlike the buffers in FIG. 1, the buffers Z1 to Z6 in FIG. 2 are differential buffers that provide two outputs, both a non-inverting output that follows the input to the driver, and an inverting output that inverts the input to the driver. (As is conventional, this inversion is indicated by the small circle or “bubble” on the differential buffers Z1 to Z6 in FIG. 2.)
Resistors R1 to R6 are all connected to the non-inverting outputs of differential buffers Z1 to Z6 in FIG. 2, and the output voltage “Out” is the sum of the voltages from resistors R1 to R6. The second set of resistors R7 to R12 is a duplicate set of the resistors R1 to R6; however, resistors R7 to R12 are all connected to the inverted outputs of differential buffers Z1 to Z6 in FIG. 2. The output voltage “Outb” from resistors R7 to R12 is the sum of the voltages from resistors R7 to R12.
Since resistors R7 to R12 have the same values as resistors R1 to R6 respectively, but are connected to the inverting outputs of differential buffers Z1 to Z6, the output signal “Outb” is thus the complement of “Out” and the difference between “Out” and “Outb” forms a differential output signal. Such differential signals may, for example, be used to suppress common mode errors and reduce noise.
In FIG. 2, all of the coefficients that contribute to “Out” are again positive numbers, as in FIG. 1, since resistors R1 to R6 are all connected to the non-inverting outputs of the differential buffers Z1 to Z6. (Since resistors R7 to R12 have the same values as resistors R1 to R6, they represent the same positive coefficients and form “Outb” as the complement of “Out” because they are connected to the inverting outputs of the buffers.) However, the use of a circuit such as that shown in FIG. 2 has another advantage, i.e., that a negative coefficient may now be easily created. This is easily accomplished simply by swapping the output connections of a pair of resistors.
An example of this is shown in FIG. 3. The filter in FIG. 3 is nearly identical to that of FIG. 2, except that resistors R4 and R10 are now connected to the opposite outputs from their connections in FIG. 2. In FIG. 2, resistor R4 contributes to the output “Out,” and resistor R10 contributes to the output “Outb.” In FIG. 3, resistor R4 instead contributes to the output “Outb,” and resistor R10 contributes to output “Out.” The result of this is that the contributions from the outputs of resistors R4 and R10 are now inverted relative to the other resistors; this has the effect that the signal after delay element U4 is now subject to a negative coefficient in its weighting toward the outputs. Any other negative coefficients desired in a particular filter may be obtained in the same fashion.
As stated above, in this example the resistors R7 to R12 in FIGS. 2 and 3 have the same values as resistors R1 to R6 in those figures. Thus, this known architecture for generating negative coefficient values and a differential output requires two sets of resistors, each set having a resistor corresponding to each of the Fourier coefficients determined to provide a desired frequency response, and where each resistor in the second set is a duplicate of a resistor in the first set.